//#include "GeometryInstance.h"
//
//using namespace std;
//
/////<************************************************************************************************************>
/////<************************************* region CONSTANTS DEFINITION ******************************************>
/////<************************************************************************************************************>
//
///***************************************************************************************************************
//************************************** endregion CONSTANTS DEFINITION ******************************************
//****************************************************************************************************************/
//
//
//
//
//
//
//
//
///// <summary>
///// Constructor
///// </summary>
///// <param name="n"> The geometry instance name </param>
//CI::GeometryInstance::GeometryInstance (const char* n, Geometry& g) : name (n), geometry (g) {}
//
///// <summary>
///// Constructor
///// </summary>
///// <param name="n"> The geometry instance name </param>
//CI::GeometryInstance::GeometryInstance (const string& n, Geometry& g) : name (n.c_str()), geometry (g) {}
//
///// <summary>
///// Destructor
///// </summary>
//CI::GeometryInstance::~GeometryInstance() {}
//
//
//
//
//
//
//
//
//
//
//
/////<************************************************************************************************************>
/////<**************************************** region Utility Methods ********************************************>
/////<************************************************************************************************************>
//
///// <summary>
///// Method called to render the geometry instance
///// </summary>
//void CI::GeometryInstance::Render() {
//
//    float px, py, pz;            //Temporary variables to compute the positioning translation
//    float sx, sy, sz;            //Temporary variables to compute the scaling transformation
//    float tx, ty, tz;            //Temporary variables to compute the translating transformation
//    
//    Vertex& minTb = transformedBox.min;                 //Reference to the minimum-geometry-transformed-bounding-box vertex
//    Vertex& maxTb = transformedBox.max;                 //Reference to the maximum-geometry-transformed-bounding-box vertex
//    Vertex& minb = geometry.boundingBox.min;            //Reference to the minimum-geometry-bounding-box vertex
//    Vertex& maxb = geometry.boundingBox.max;            //Reference to the maximum-geometry-bounding-box vertex
//
//    //Computing the positioning translation values
//    px = pos.x + (maxTb.x - minTb.x) / 2;
//    py = pos.y + (maxTb.y - minTb.y) / 2;
//    pz = pos.z + (maxTb.z - minTb.z) / 2;
//
//    //Computing the scaling values
//    sx = size.x / (maxb.x - minb.x);
//    sy = size.y / (maxb.y - minb.y);
//    sz = size.z / (maxb.z - minb.z);
//
//    //Computing the translating values
//    tx = -(maxb.x + minb.x) / 2;
//    ty = -(maxb.y + minb.y) / 2;
//    tz = -(maxb.z + minb.z) / 2;
//
//    glPushMatrix();
//        glTranslatef (px, py, pz);                          //Translates the geometry to his final position
//        glRotatef (orientation.x, 1.0f, 0.0f, 0.0f);        //Rotates the geometry on x-axis
//        glRotatef (orientation.y, 0.0f, 1.0f, 0.0f);        //Rotates the geometry on y-axis
//        glRotatef (orientation.z, 0.0f, 0.0f, 1.0f);        //Rotates the geometry on z-axis
//        glScalef (sx, sy, sz);                              //Scales the geometry
//        glTranslatef (tx, ty, tz);                          //Translates the geometry so that it has his centre in the origin
//        geometry.Render();                                  //Renders the geometry
//    glPopMatrix();
//}
///***************************************************************************************************************
//******************************************* endregion Utility Methods ******************************************
//****************************************************************************************************************/
